package com.sztx.pay.center.common.yhbf;

import java.io.UnsupportedEncodingException;

import org.apache.poi.ss.formula.atp.AnalysisToolPak;
import org.jsoup.helper.StringUtil;

import com.sztx.se.common.exception.BusinessException;
import com.sztx.se.common.util.RegexUtil;

public class YHBFSensitiveEnc {
	public static String sensitiveEnc(String data,String type){
		try {
			if(StringUtil.isBlank(data)){
				return data;
			}
			return YHBFUtil.encryptEncode(data, "UTF-8");
		} catch (UnsupportedEncodingException e) {
			throw new BusinessException("yhbf加密数据失败");
		}
	}
	
	public static String sensitiveDec(String data,String type){
		if(StringUtil.isBlank(data)){
			return data;
		}
		return dec(data, type);
		
	}
	public static String passDatasensitiveEnc(String data,String type){
		if(StringUtil.isBlank(data)){
			return data;
		}
		return passenc(data, type);
	}
	
	
	
	private static String dec(String data,String type){
		try {
//			switch (type) {
//			case "mob":
//				if(RegexUtil.Mobile(data)){
//					return data;
//				}
//			case "realname":
//				if(RegexUtil.Chinese(data)){
//					return data;
//				}
//			case "identityno":
//				if(RegexUtil.IDcard(data)){
//					return data;
//				}
//			case "cardno":
//				if(RegexUtil.Number(data)){
//					return data;
//				}
//			default:
//				return YHBFUtil.decryptEncode(data, "UTF-8");
//			}
			if(type.equals("mob")){
				if(RegexUtil.Mobile(data)){
					return data;
				}
			}else if(type.equals("realname")){
				if(RegexUtil.Chinese(data)){
					return data;
				}
			}else if(type.equals("identityno")){
				if(RegexUtil.IDcard(data)){
					return data;
				}
			}else if(type.equals("cardno")){
				if(RegexUtil.Number(data) || RegexUtil.Email(data) || RegexUtil.Mobile(data)){
					return data;
				}
			}
			return YHBFUtil.decryptEncode(data, "UTF-8");
			
		} catch (UnsupportedEncodingException e) {
			throw new BusinessException("yhbf数据解密失败");
		}
	}
	private static String passenc(String data,String type){
		try {
//			switch (type) {
//			case "mob":
//				if(!RegexUtil.Mobile(data)){
//					return data;
//				}
//			case "realname":
//				if(!RegexUtil.Chinese(data)){
//					return data;
//				}
//			case "identityno":
//				if(!RegexUtil.IDcard(data)){
//					return data;
//				}
//			case "cardno":
//				if(!RegexUtil.Number(data)){
//					return data;
//				}
//			default:
//				return YHBFUtil.encryptEncode(data, "UTF-8");
//			}
			
			if(type.equals("mob")){
				if(!RegexUtil.Mobile(data)){
					return data;
				}
			}else if(type.equals("realname")){
				if(!RegexUtil.Chinese(data)){
					return data;
				}
			}else if(type.equals("identityno")){
				if(!RegexUtil.IDcard(data)){
					return data;
				}
			}else if(type.equals("cardno")){
				if(!RegexUtil.Number(data) && !RegexUtil.Email(data) && !RegexUtil.Mobile(data)){
					return data;
				}
			}
			return YHBFUtil.encryptEncode(data, "UTF-8");
		} catch (UnsupportedEncodingException e) {
			throw new BusinessException("yhbf数据加密失败");
		}
	}
	
//	
//	public static void main(String[] args) {
//		String cardNo = YHBFSensitiveEnc.passDatasensitiveEnc("6214830282950343","cardno");
//	}
}
